package cn.sanshuilin.kst.system.provider.bean;

import javax.persistence.*;
import javax.security.auth.Subject;
import java.io.Serializable;
import java.sql.Timestamp;
import java.util.Calendar;
import java.util.List;

/**
 * @author greenlee
 * @version v1.0
 * @create 创建时间: 2017-12-03 19:28
 * Copyright 2017  by 三水林科技有限公司
 **/
@Entity
@Table(name = "share")
public class Share implements Serializable {
    private String id;
    private String title;
    private String content;
    private Integer statusId;
    private Integer attitudeCount;
    private Integer commentCount;
    private Integer relayCount;
    private Integer tag;
    private String attachmentIDs;
    private Integer isPublic;
    private Timestamp pubDate;
    private String pubMemberId;
    private String videoImageAttachmentId;
    private int isRecommendId;
    private int isTopId;
    private Integer categoryId;
    private String description;
    private String imageIDs;
    private Integer typeId;
    private String shareParentId;
    private String shareRootId;
    private Integer hotId;
    private String address;
    private String lng;
    private String lat;
    private Integer attentionCount;
    private Integer isFocusId;
    private String locationId;

    private String shareContent;
    private String shContent;
    private String link;
    private String statusName;
    private String attitudeCounts;
    private String commentCounts;
    private String relayCounts;
    private String attentionCounts;
    private String readCounts;
    private Share shareRoot;
    private String vIdeoUrl;
    private String vIdeoImageUrl;
    private boolean isAttention;
    private boolean isAttitude;
    private String locationName;
    private String AttachmentIds;
    private String pubDateStr;
    private String isTopName;
    private String isFocusName;
    private String categoryName;
    private String subjectId;
    private String typeName;
    private Member pubMember;
    private Subject subject;
    private List<String> imageUrls;
    private List<String> imageUrlViews;
    private List<Comment> comments;

    public void setShareContent(String shareContent) {
        this.shareContent = shareContent;
    }

    public void setShContent(String shContent) {
        this.shContent = shContent;
    }

    public void setLink(String link) {
        this.link = link;
    }

    public void setStatusName(String statusName) {
        this.statusName = statusName;
    }

    public void setAttitudeCounts(String attitudeCounts) {
        this.attitudeCounts = attitudeCounts;
    }

    public void setCommentCounts(String commentCounts) {
        this.commentCounts = commentCounts;
    }

    public void setRelayCounts(String relayCounts) {
        this.relayCounts = relayCounts;
    }

    public void setAttentionCounts(String attentionCounts) {
        this.attentionCounts = attentionCounts;
    }

    public void setReadCounts(String readCounts) {
        this.readCounts = readCounts;
    }

    public void setShareRoot(Share shareRoot) {
        this.shareRoot = shareRoot;
    }

    public void setvIdeoUrl(String vIdeoUrl) {
        this.vIdeoUrl = vIdeoUrl;
    }

    public void setvIdeoImageUrl(String vIdeoImageUrl) {
        this.vIdeoImageUrl = vIdeoImageUrl;
    }

    public void setAttention(boolean attention) {
        isAttention = attention;
    }

    public void setAttitude(boolean attitude) {
        isAttitude = attitude;
    }

    public void setLocationName(String locationName) {
        this.locationName = locationName;
    }

    public void setAttachmentIds(String attachmentIds) {
        AttachmentIds = attachmentIds;
    }

    public void setPubDateStr(String pubDateStr) {
        this.pubDateStr = pubDateStr;
    }

    public void setIsTopName(String isTopName) {
        this.isTopName = isTopName;
    }

    public void setIsFocusName(String isFocusName) {
        this.isFocusName = isFocusName;
    }

    public void setCategoryName(String categoryName) {
        this.categoryName = categoryName;
    }

    public void setSubjectId(String subjectId) {
        this.subjectId = subjectId;
    }

    public void setTypeName(String typeName) {
        this.typeName = typeName;
    }

    public void setPubMember(Member pubMember) {
        this.pubMember = pubMember;
    }

    public void setSubject(Subject subject) {
        this.subject = subject;
    }

    public void setImageUrls(List<String> imageUrls) {
        this.imageUrls = imageUrls;
    }

    public void setImageUrlViews(List<String> imageUrlViews) {
        this.imageUrlViews = imageUrlViews;
    }

    public void setComments(List<Comment> comments) {
        this.comments = comments;
    }

    public void setAttitudes(List<Attitude> attitudes) {
        this.attitudes = attitudes;
    }

    public void setHasVIdeo(boolean hasVIdeo) {
        this.hasVIdeo = hasVIdeo;
    }

    public void setPubCalendar(Calendar pubCalendar) {
        this.pubCalendar = pubCalendar;
    }

    public void setHotName(String hotName) {
        this.hotName = hotName;
    }

    private List<Attitude> attitudes;
    private boolean hasVIdeo;
    private Calendar pubCalendar;
    public String hotName;
    @Transient
    public String getShareContent() {
        return shareContent;
    }
    @Transient
    public String getShContent() {
        return shContent;
    }
    @Transient
    public String getLink() {
        return link;
    }
    @Transient
    public String getStatusName() {
        return statusName;
    }
    @Transient
    public String getAttitudeCounts() {
        return attitudeCounts;
    }
    @Transient
    public String getCommentCounts() {
        return commentCounts;
    }
    @Transient
    public String getRelayCounts() {
        return relayCounts;
    }

    @Transient
    public String getAttentionCounts() {
        return attentionCounts;
    }
    @Transient
    public String getReadCounts() {
        return readCounts;
    }
    @Transient
    public Share getShareRoot() {
        return shareRoot;
    }
    @Transient
    public String getvIdeoUrl() {
        return vIdeoUrl;
    }
    @Transient
    public String getvIdeoImageUrl() {
        return vIdeoImageUrl;
    }
    @Transient
    public boolean isAttention() {
        return isAttention;
    }
    @Transient
    public boolean isAttitude() {
        return isAttitude;
    }
    @Transient
    public String getLocationName() {
        return locationName;
    }
    @Transient
    public String getAttachmentIds() {
        return AttachmentIds;
    }
    @Transient
    public String getPubDateStr() {
        return pubDateStr;
    }
    @Transient
    public String getIsTopName() {
        return isTopName;
    }
    @Transient
    public String getIsFocusName() {
        return isFocusName;
    }
    @Transient
    public String getCategoryName() {
        return categoryName;
    }
    @Transient
    public String getSubjectId() {
        return subjectId;
    }
    @Transient
    public String getTypeName() {
        return typeName;
    }
    @Transient
    public Member getPubMember() {
        return pubMember;
    }
    @Transient
    public Subject getSubject() {
        return subject;
    }
    @Transient
    public List<String> getImageUrls() {
        return imageUrls;
    }
    @Transient
    public List<String> getImageUrlViews() {
        return imageUrlViews;
    }
    @Transient
    public List<Comment> getComments() {
        return comments;
    }
    @Transient
    public List<Attitude> getAttitudes() {
        return attitudes;
    }
    @Transient
    public boolean isHasVIdeo() {
        return hasVIdeo;
    }
    @Transient
    public Calendar getPubCalendar() {
        return pubCalendar;
    }
    @Transient
    public String getHotName() {
        return hotName;
    }

    @Id
    @Column(name = "ID", nullable = false, length = 255)
    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    @Basic
    @Column(name = "Title", nullable = true, length = 255)
    public String getTitle() {
        return title;
    }

    public void setTitle(String title) {
        this.title = title;
    }

    @Basic
    @Column(name = "Content", nullable = true, length = 255)
    public String getContent() {
        return content;
    }

    public void setContent(String content) {
        this.content = content;
    }

    @Basic
    @Column(name = "StatusID", nullable = true)
    public Integer getStatusId() {
        return statusId;
    }

    public void setStatusId(Integer statusId) {
        this.statusId = statusId;
    }

    @Basic
    @Column(name = "AttitudeCount", nullable = true)
    public Integer getAttitudeCount() {
        return attitudeCount;
    }

    public void setAttitudeCount(Integer attitudeCount) {
        this.attitudeCount = attitudeCount;
    }

    @Basic
    @Column(name = "CommentCount", nullable = true)
    public Integer getCommentCount() {
        return commentCount;
    }

    public void setCommentCount(Integer commentCount) {
        this.commentCount = commentCount;
    }

    @Basic
    @Column(name = "RelayCount", nullable = true)
    public Integer getRelayCount() {
        return relayCount;
    }

    public void setRelayCount(Integer relayCount) {
        this.relayCount = relayCount;
    }

    @Basic
    @Column(name = "Tag", nullable = true)
    public Integer getTag() {
        return tag;
    }

    public void setTag(Integer tag) {
        this.tag = tag;
    }

    @Basic
    @Column(name = "AttachmentIDs", nullable = true, length = 255)
    public String getAttachmentIDs() {
        return attachmentIDs;
    }

    public void setAttachmentIDs(String attachmentIDs) {
        this.attachmentIDs = attachmentIDs;
    }

    @Basic
    @Column(name = "IsPublic", nullable = true)
    public Integer getIsPublic() {
        return isPublic;
    }

    public void setIsPublic(Integer isPublic) {
        this.isPublic = isPublic;
    }

    @Basic
    @Column(name = "PubDate", nullable = true)
    public Timestamp getPubDate() {
        return pubDate;
    }

    public void setPubDate(Timestamp pubDate) {
        this.pubDate = pubDate;
    }

    @Basic
    @Column(name = "PubMemberID", nullable = true, length = 255)
    public String getPubMemberId() {
        return pubMemberId;
    }

    public void setPubMemberId(String pubMemberId) {
        this.pubMemberId = pubMemberId;
    }

    @Basic
    @Column(name = "VideoImageAttachmentID", nullable = true, length = 255)
    public String getVideoImageAttachmentId() {
        return videoImageAttachmentId;
    }

    public void setVideoImageAttachmentId(String videoImageAttachmentId) {
        this.videoImageAttachmentId = videoImageAttachmentId;
    }

    @Basic
    @Column(name = "IsRecommendID", nullable = false)
    public int getIsRecommendId() {
        return isRecommendId;
    }

    public void setIsRecommendId(int isRecommendId) {
        this.isRecommendId = isRecommendId;
    }

    @Basic
    @Column(name = "IsTopID", nullable = false)
    public int getIsTopId() {
        return isTopId;
    }

    public void setIsTopId(int isTopId) {
        this.isTopId = isTopId;
    }

    @Basic
    @Column(name = "CategoryID", nullable = true)
    public Integer getCategoryId() {
        return categoryId;
    }

    public void setCategoryId(Integer categoryId) {
        this.categoryId = categoryId;
    }

    @Basic
    @Column(name = "Description", nullable = true, length = 255)
    public String getDescription() {
        return description;
    }

    public void setDescription(String description) {
        this.description = description;
    }

    @Basic
    @Column(name = "ImageIDs", nullable = true, length = 255)
    public String getImageIDs() {
        return imageIDs;
    }

    public void setImageIDs(String imageIDs) {
        this.imageIDs = imageIDs;
    }

    @Basic
    @Column(name = "TypeID", nullable = true)
    public Integer getTypeId() {
        return typeId;
    }

    public void setTypeId(Integer typeId) {
        this.typeId = typeId;
    }

    @Basic
    @Column(name = "ShareParentID", nullable = true, length = 255)
    public String getShareParentId() {
        return shareParentId;
    }

    public void setShareParentId(String shareParentId) {
        this.shareParentId = shareParentId;
    }

    @Basic
    @Column(name = "ShareRootID", nullable = true, length = 255)
    public String getShareRootId() {
        return shareRootId;
    }

    public void setShareRootId(String shareRootId) {
        this.shareRootId = shareRootId;
    }

    @Basic
    @Column(name = "HotID", nullable = true)
    public Integer getHotId() {
        return hotId;
    }

    public void setHotId(Integer hotId) {
        this.hotId = hotId;
    }

    @Basic
    @Column(name = "Address", nullable = true, length = 255)
    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }

    @Basic
    @Column(name = "Lng", nullable = true, length = 255)
    public String getLng() {
        return lng;
    }

    public void setLng(String lng) {
        this.lng = lng;
    }

    @Basic
    @Column(name = "Lat", nullable = true, length = 255)
    public String getLat() {
        return lat;
    }

    public void setLat(String lat) {
        this.lat = lat;
    }

    @Basic
    @Column(name = "AttentionCount", nullable = true)
    public Integer getAttentionCount() {
        return attentionCount;
    }

    public void setAttentionCount(Integer attentionCount) {
        this.attentionCount = attentionCount;
    }

    @Basic
    @Column(name = "IsFocusID", nullable = true)
    public Integer getIsFocusId() {
        return isFocusId;
    }

    public void setIsFocusId(Integer isFocusId) {
        this.isFocusId = isFocusId;
    }

    @Basic
    @Column(name = "LocationID", nullable = true, length = 255)
    public String getLocationId() {
        return locationId;
    }

    public void setLocationId(String locationId) {
        this.locationId = locationId;
    }

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;

        Share sharebean = (Share) o;

        if (isRecommendId != sharebean.isRecommendId) return false;
        if (isTopId != sharebean.isTopId) return false;
        if (id != null ? !id.equals(sharebean.id) : sharebean.id != null) return false;
        if (title != null ? !title.equals(sharebean.title) : sharebean.title != null) return false;
        if (content != null ? !content.equals(sharebean.content) : sharebean.content != null) return false;
        if (statusId != null ? !statusId.equals(sharebean.statusId) : sharebean.statusId != null) return false;
        if (attitudeCount != null ? !attitudeCount.equals(sharebean.attitudeCount) : sharebean.attitudeCount != null)
            return false;
        if (commentCount != null ? !commentCount.equals(sharebean.commentCount) : sharebean.commentCount != null)
            return false;
        if (relayCount != null ? !relayCount.equals(sharebean.relayCount) : sharebean.relayCount != null) return false;
        if (tag != null ? !tag.equals(sharebean.tag) : sharebean.tag != null) return false;
        if (attachmentIDs != null ? !attachmentIDs.equals(sharebean.attachmentIDs) : sharebean.attachmentIDs != null)
            return false;
        if (isPublic != null ? !isPublic.equals(sharebean.isPublic) : sharebean.isPublic != null) return false;
        if (pubDate != null ? !pubDate.equals(sharebean.pubDate) : sharebean.pubDate != null) return false;
        if (pubMemberId != null ? !pubMemberId.equals(sharebean.pubMemberId) : sharebean.pubMemberId != null)
            return false;
        if (videoImageAttachmentId != null ? !videoImageAttachmentId.equals(sharebean.videoImageAttachmentId) : sharebean.videoImageAttachmentId != null)
            return false;
        if (categoryId != null ? !categoryId.equals(sharebean.categoryId) : sharebean.categoryId != null) return false;
        if (description != null ? !description.equals(sharebean.description) : sharebean.description != null)
            return false;
        if (imageIDs != null ? !imageIDs.equals(sharebean.imageIDs) : sharebean.imageIDs != null) return false;
        if (typeId != null ? !typeId.equals(sharebean.typeId) : sharebean.typeId != null) return false;
        if (shareParentId != null ? !shareParentId.equals(sharebean.shareParentId) : sharebean.shareParentId != null)
            return false;
        if (shareRootId != null ? !shareRootId.equals(sharebean.shareRootId) : sharebean.shareRootId != null)
            return false;
        if (hotId != null ? !hotId.equals(sharebean.hotId) : sharebean.hotId != null) return false;
        if (address != null ? !address.equals(sharebean.address) : sharebean.address != null) return false;
        if (lng != null ? !lng.equals(sharebean.lng) : sharebean.lng != null) return false;
        if (lat != null ? !lat.equals(sharebean.lat) : sharebean.lat != null) return false;
        if (attentionCount != null ? !attentionCount.equals(sharebean.attentionCount) : sharebean.attentionCount != null)
            return false;
        if (isFocusId != null ? !isFocusId.equals(sharebean.isFocusId) : sharebean.isFocusId != null) return false;
        if (locationId != null ? !locationId.equals(sharebean.locationId) : sharebean.locationId != null) return false;

        return true;
    }

    @Override
    public int hashCode() {
        int result = id != null ? id.hashCode() : 0;
        result = 31 * result + (title != null ? title.hashCode() : 0);
        result = 31 * result + (content != null ? content.hashCode() : 0);
        result = 31 * result + (statusId != null ? statusId.hashCode() : 0);
        result = 31 * result + (attitudeCount != null ? attitudeCount.hashCode() : 0);
        result = 31 * result + (commentCount != null ? commentCount.hashCode() : 0);
        result = 31 * result + (relayCount != null ? relayCount.hashCode() : 0);
        result = 31 * result + (tag != null ? tag.hashCode() : 0);
        result = 31 * result + (attachmentIDs != null ? attachmentIDs.hashCode() : 0);
        result = 31 * result + (isPublic != null ? isPublic.hashCode() : 0);
        result = 31 * result + (pubDate != null ? pubDate.hashCode() : 0);
        result = 31 * result + (pubMemberId != null ? pubMemberId.hashCode() : 0);
        result = 31 * result + (videoImageAttachmentId != null ? videoImageAttachmentId.hashCode() : 0);
        result = 31 * result + isRecommendId;
        result = 31 * result + isTopId;
        result = 31 * result + (categoryId != null ? categoryId.hashCode() : 0);
        result = 31 * result + (description != null ? description.hashCode() : 0);
        result = 31 * result + (imageIDs != null ? imageIDs.hashCode() : 0);
        result = 31 * result + (typeId != null ? typeId.hashCode() : 0);
        result = 31 * result + (shareParentId != null ? shareParentId.hashCode() : 0);
        result = 31 * result + (shareRootId != null ? shareRootId.hashCode() : 0);
        result = 31 * result + (hotId != null ? hotId.hashCode() : 0);
        result = 31 * result + (address != null ? address.hashCode() : 0);
        result = 31 * result + (lng != null ? lng.hashCode() : 0);
        result = 31 * result + (lat != null ? lat.hashCode() : 0);
        result = 31 * result + (attentionCount != null ? attentionCount.hashCode() : 0);
        result = 31 * result + (isFocusId != null ? isFocusId.hashCode() : 0);
        result = 31 * result + (locationId != null ? locationId.hashCode() : 0);
        return result;
    }
}
